Julia (programming language)

Julia
ParadigmMulti-paradigm: multiple dispatch (primary paradigm), object-oriented,[1] functional, array, procedural (imperative), structured, reflective, meta, multistaged[2]
Designed byJeff Bezanson, Alan Edelman, Stefan Karpinski, Viral B. Shah
DeveloperJeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors[3][4]
First appeared2012 (2012)[5]
Stable release
1.10.3[6] Edit this on Wikidata / 30 April 2024 (30 April 2024) and
1.6.7 LTS[10][11] / 19 July 2022 (2022-07-19)
Preview release
1.11.0-beta1[7][8][9] / 10 April 2024 (2024-04-10) and 1.12.0-DEV with daily updates
Typing disciplineDynamic,[12] inferred, optional, nominative, parametric, strong[12]
Implementation languageJulia, C, C++, LLVM,[13] Scheme (mostly the parser; that one not used in current versions)
PlatformTier 1: x86-64, IA-32, Apple silicon 64-bit Arm Macs; CUDA 10.1[14] to 12/Nvidia GPUs (for Linux and Windows)
Tier 2: FreeBSD, 64-bit Arm on Linux
Tier 3: 32-bit Arm, PowerPC, AMD (ROCm) GPUs and oneAPI/Intel's GPUs.
OSLinux, macOS, Windows and FreeBSD
LicenseMIT
Filename extensions.jl
WebsiteJuliaLang.org
Influenced by

Julia is a high-level, general-purpose[20] dynamic programming language, most commonly used for numerical analysis and computational science.[21][22][23] Distinctive aspects of Julia's design include a type system with parametric polymorphism and the use of multiple dispatch as a core programming paradigm, efficient garbage collection,[24] and a just-in-time (JIT) compiler[20][25] (with support for ahead-of-time compilation[26][27][28]).

Julia can be run similar to (interpreted) scripting languages (i.e. Julia has a REPL), and does[clarification needed] by default using its runtime (when preinstalled),[26] but Julia programs/source code can also optionally be sent to users in one ready-to-install/run file, which can be made quickly, not needing anything preinstalled.[citation needed] Julia programs can also be (separately) compiled to binary executables, even allowing no-source-code distribution. Such compilation is not needed for speed, since Julia is also compiled when running interactively, but it can help with hiding source code. Features of the language can be separately compiled, so Julia can be used, for example, with its runtime or without it (which allows for smaller executables and libraries but is limited in capabilities).

Julia programs can reuse libraries from other languages by calling them, e.g. calling C or Rust libraries, and Julia (libraries) can also be called from other languages, e.g. Python and R, and several Julia packages have been made easily available from those languages, in the form of Python and R libraries for corresponding Julia packages. Calling in either direction has been implemented for many languages such as all of these.

Julia's Visual Studio Code extension provides a fully-featured integrated development environment with support for debugging, linting, and profiling.[29][30][31][32]

  1. ^ "2. Object-Oriented Programming - Beginning Julia Programming: For Engineers and Scientists [Book]". www.oreilly.com. Retrieved 26 January 2023.
  2. ^ "Smoothing data with Julia's @generated functions". 5 November 2015. Retrieved 9 December 2015. Julia's generated functions are closely related to the multistaged programming (MSP) paradigm popularized by Taha and Sheard, which generalizes the compile time/run time stages of program execution by allowing for multiple stages of delayed code execution.
  3. ^ "LICENSE.md". GitHub. September 2017.
  4. ^ "Contributors to JuliaLang/julia". GitHub.
  5. ^ a b c d "Why We Created Julia". Julia website. February 2012. Retrieved 7 February 2013.
  6. ^ "Download Julia".
  7. ^ "Release v1.11.0-beta1 · JuliaLang/julia". GitHub. Retrieved 10 April 2024.
  8. ^ "Julia v1.11.0-alpha2 is now available". Julia Programming Language. 19 March 2024. Retrieved 4 April 2024.
  9. ^ "Backports release 1.11 by KristofferC · Pull Request #53472 · JuliaLang/julia". GitHub. Retrieved 26 February 2024.
  10. ^ "GitHub - JuliaLang/julia at release-1.6". GitHub. Retrieved 19 July 2022.
  11. ^ "release-1.6: Backports for 1.6.7 by KristofferC · Pull Request #45319 · JuliaLang/julia". GitHub. Retrieved 16 May 2022.
  12. ^ a b Engheim, Erik (17 November 2017). "Dynamically Typed Languages Are Not What You Think". Medium. Retrieved 27 January 2021.
  13. ^ "Building Julia (Detailed)". GitHub. September 2017. Retrieved 16 May 2022.
  14. ^ "NVIDIA CUDA ⋅ JuliaGPU". juliagpu.org. Retrieved 17 January 2022. we have shown the performance to approach and even sometimes exceed that of CUDA C on a selection of applications from the Rodinia benchmark suite
  15. ^ Stokel-Walker, Chris. "Julia: The Goldilocks language". Increment. Stripe. Retrieved 23 August 2020.
  16. ^ "JuliaCon 2016". JuliaCon. Retrieved 6 December 2016. He has co-designed the programming language Scheme, which has greatly influenced the design of Julia
  17. ^ a b c d "Home · The Julia Language". docs.julialang.org. Retrieved 15 August 2018.
  18. ^ "Programming Language Network". GitHub. Archived from the original on 20 December 2020. Retrieved 6 December 2016.
  19. ^ "What Should We Call the Language of Mathematica?—Stephen Wolfram Writings". writings.stephenwolfram.com. Retrieved 24 June 2021.
  20. ^ a b Fischer, Keno; Nash, Jameson. "Growing a Compiler - Getting to Machine Learning from a General Purpose Compiler - JuliaHub". juliahub.com. Retrieved 16 November 2022.
  21. ^ Bryant, Avi (15 October 2012). "Matlab, R, and Julia: Languages for data analysis". O'Reilly Strata. Archived from the original on 26 April 2014.
  22. ^ Krill, Paul (18 April 2012). "New Julia language seeks to be the C for scientists". InfoWorld.
  23. ^ Finley, Klint (3 February 2014). "Out in the Open: Man Creates One Programming Language to Rule Them All". Wired.
  24. ^ "Suspending Garbage Collection for Performance...good idea or bad idea?". Groups.google.com. Retrieved 31 May 2017.
  25. ^ "Sysimages · PackageCompiler". julialang.github.io. Retrieved 10 April 2023.
  26. ^ a b Cite error: The named reference PackageCompiler.jl was invoked but never defined (see the help page).
  27. ^ "julia/doc/src/devdocs/aot.md at master · JuliaLang/julia". GitHub. Retrieved 3 October 2023.
  28. ^ "System Image Building · The Julia Language". docs.julialang.org. Retrieved 3 October 2023.
  29. ^ Holy, Tim (13 September 2019). "GitHub - timholy/ProfileView.jl: Visualization of Julia profiling data". GitHub. Retrieved 22 September 2019.
  30. ^ Gregg, Brendan (20 September 2019). "GitHub - brendangregg/FlameGraph: Stack trace visualizer". GitHub. Retrieved 22 September 2019.
  31. ^ "A Julia interpreter and debugger". julialang.org. Retrieved 10 April 2019.
  32. ^ "Home · Rebugger.jl". timholy.github.io. Retrieved 10 April 2019.

© MMXXIII Rich X Search. We shall prevail. All rights reserved. Rich X Search